Providing hotspots to user devices within server-controlled zones

ABSTRACT

A user installs a hotspot alert application on their mobile device. The application employs the location technology of the user device to transmit the location of the device, and thus the location of the user. The location can be transmitted to a server located in a hotspot tracking system. By establishing the location of the user, the server may search for hotspots on a database stored on the system. The server establishes the dimensions of a hotspot zone around the user&#39;s location and transmits the hotspots and the zone dimensions to the application on the user device. The application monitors the location of the user device and deliver&#39;s configured alerts to the user when approaching a hotspot. When the device leaves a zone or remains idle for a configured amount of time, the device requests and receives an updated zone of hotspots.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application claims priority to and is a continuation of U.S. patentapplication Ser. No. 13/369,182, filed Feb. 8, 2012, herein by whichclaims priority to and benefit of U.S. Provisional Application61/586,820, filed Jan. 15, 2012, incorporated herein by reference intheir entirety.

TECHNICAL FIELD

The present disclosure relates generally to mobile hotspot tracking, andmore particularly to delivering server-controlled hotspot zones to amobile device.

BACKGROUND

Location data from a mobile device can be used for numerousapplications. There are applications that use the location data forlocating friends, playing games, and assisting a user with directions.The location data can also be used to alert a user when the user and theuser's device are in the vicinity of a hotspot. A hotspot is anybusiness, institution, or location that would be of interest to a user.For example, a user may choose to be alerted every time the user nears aparticular store or restaurant, or the server may identify a hotspot asa nearby store that the user frequents and that is currently offering apromotion or coupon.

Unfortunately, hotspot information is constantly changing. New storesare built, promotions are updated, and the user location changes. A usermay desire constantly updated hotspot information, but the mobiledevices are not typically capable of maintaining a database of all thehotspots and hotspot marketing data. Trying to maintain this data mayhave an adverse effect on the data storage capacity of the device, thebattery life of the device, the required data transmission capacity, orother aspects of operating a mobile device.

Conversely, tracking the location of the user device by the server andcontinually providing updates with hotspot data as the mobile devicechanges locations also adversely affects the battery, storage capacity,and data transmission capacity of the device.

Thus, a need in the art exists for systems and methods that improve uponone or more of the above-described limitations.

SUMMARY OF THE INVENTION

An aspect of the present invention provides a computer-implementedmethod for delivering server-controlled hotspot zones to a mobiledevice. A user installs a hotspot alert application (“HAA”) on theirmobile device. The HAA employs the location technology of the userdevice to determine a location of user device. The location can betransmitted to a server located in a hotspot tracking system (“HTS”). Byestablishing the location of the user, the HTS may search for hotspotson a database stored on the system. The HTS establishes the dimensionsof a hotspot zone substantially surrounding the user's location. The HTStransmits the hotspots and the zone dimensions to the HAA. The HAAmonitors the location of the user device and may deliver configuredalerts to the user when approaching a hotspot. Alternatively, the HAAmay notify the server when the user is approaching a hotspot, and theserver may determine whether to alert the user. When the device leaves azone or remains idle for a configured amount of time, the devicerequests and receives an updated zone of hotspots.

Another aspect of the present invention provides a computer programproduct that is installed on a user's device and on a server located inan HTS for delivering server-controlled hotspot zones to a mobiledevice. The computer program product includes a non-transitorycomputer-readable storage device having computer-readable programinstructions stored therein. The computer-readable program instructionsinclude computer program instructions for transmitting the user'slocation from the user device to the HTS server; searching for hotspotson a database stored on the system; establishing the dimensions of thehotspot zone around the user's location; transmitting the hotspots andthe zone dimensions to the user device; monitoring the location of thedevice and alerting the user when approaching a hotspot; requesting andreceiving updated hotspot information when the device leaves a zone orremains idle for a configured amount of time.

Another aspect of the present invention provides a system for deliveringserver-controlled hotspot zones to a mobile device. The HAA isconfigured for transmitting the user's location to the HTS server,monitoring the location of the device, and requesting and receivingupdated hotspot information when the device leaves a zone or remainsidle for a configured amount of time. The HAA also may alert the userwhen approaching a hotspot or may notify the server when the user isapproaching a hotspot, and the server may determine whether to alert theuser. The system includes an HTS server configured for receiving thelocation data; searching for hotspots on a database stored on the HTSsystem; establishing the dimensions of the hotspot zone around theuser's location; and transmitting the hotspots and the zone dimensionsto the user device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting an operating environment of ahotspot alert application (“HAA”), in accordance with certain exemplaryembodiments.

FIG. 2 is a block flow diagram depicting a method for supplying a userdevice with proximate hotspots, in accordance with certain exemplaryembodiments.

FIG. 3 is a block flow diagram depicting a method for generating andtransmitting hotspots to a user device, in accordance with certainexemplary embodiments.

DETAILED DESCRIPTION Overview

The exemplary embodiments provide a hotspot alert application (“HAA”)that can utilize a user's location data for delivering server-controlledhotspot zones to a mobile device. A user installs an HAA on their mobiledevice. The HAA can provide a user interface for entering configurationinformation. The HAA employs the Global Positioning System (“GPS”)location technology or other location identifying technology of the userdevice to transmit the location of the device, and thus the location ofthe user. This location can be transmitted to a server located in ahotspot tracking system (“HTS”). The HAA might gather the location datadirectly from the device operating system, or the HAA might request thelocation from another location-based application operating on the phone.

The HTS receives the location data from the user device and identifiesthe geographical location of the device. The HTS then accesses adatabase for hotspot information in the vicinity of the user device. Thehotspot information may be anything that would be of interest to theuser. The category of hotspot information accessed might be userconfigured or may be selected by the HTS server based on the user'sprior activities, interests, or suggestions. Examples of hotspots thatmay be identified by the server for transmitting to the user devicemight include, but would not be limited to, restaurants, stores, orother businesses frequented by the user, businesses currently offering asale or promotion, businesses currently offering an electronic coupon,tourist attractions, museums, friends identified by their devices, orany other identifiable entity in which the user may be interested.

The HTS identifies the hotspots in the user's vicinity and uses thedensity or quality of the hotspot information to establish the size andboundaries of the hotspot zone to transmit to the user device. The HTSmay limit the size of the hotspot zone to prevent any adverse effectscaused by transmitting a quantity of data that is too large for the userdevice and the system to operate efficiently. For example, if the amountof hotspot data transmitted is too large, the data may require enoughcapacity on the data storage unit of the device to affect the normaloperating of the device. Alternatively, if the size of the hotspot zoneis too small, the HTS may be forced to transmit a new zone of hotspotsto the device too frequently to be practical. For example, if thehotspot zone data were transmitted too frequently, it might consume thebattery life of the device.

The HTS may additionally prioritize the hotspot data. Based on userinput or an analysis of user historical data, such as purchasing historyor website usage, the HTS may provide a ranked list of the hotspots tothe user device. This ranked list may be used by the HAA to determinewhen or how to alert the user to the proximity of a particular hotspot.For example, the HAA may display all hotspots on a map of the zone, butonly alert the user when they are approaching one of the top ten rankedhotspots.

The HAA on the user device receives the zone boundaries and the hotspotinformation. The HAA may be an application running on the user devicethat is configured for any type of hotspot locating activity. Forinstance, the HAA may be an application that is configured to alert auser to restaurants or stores that are a favorite of the user or arecurrently offering a coupon. The HAA may alert a user to museums ortourist attractions. The HAA may alert a user of other devices operatingin the area that may be contacts of the user. The HAA may be focused onalerting a user to any other business or entity that the user or theserver configures the HAA to monitor.

After receiving the hotspot and zone information, the HAA may displaythe information on a map or other grid via the user interface of theHAA. Additionally or alternatively, the HAA may display the informationto the user in any other format that can convey the information, such asa simple listing of each hotspot and the distance away from the userthat each hotspot is located. The HAA may further provide a route to thehotspot upon request from the user.

If displaying the information on a map view, the HAA may expand orcollapse the data displayed to the user depending on the density of thedata. For example, if a large number of hotspots are located in alocalized area, the HAA may group hotspots together and show thegrouping in a single icon or notation. An example of this may be ashopping complex that contains a quantity of hotspots too great todisplay on a user device. The display may simply show a shopping complexnotation and list the number of hotspots contained at that location orany other manner of representing the group of hotspots. As the userapproaches the dense hotspot, the grouped hotspot may expand to show theindividual hotspots in that area.

After receiving the hotspot information, the mobile device continues tomonitor the location of the user device. If the device approaches ahotspot, the HAA may perform any alert function configured by the user.For instance, the HAA may alert a user when the user device is within aconfigured range of the hotspot, such as within a block of the hotspot.The alert may additionally take any configured form desired by the user.In exemplary embodiments, the HAA may use the alert internally or mayprovide an audible alert, a vibration, a visible alert, such as showingthe hotspot details on the display of the user device, an e-mail, or anyother configurable alerting procedure. In an alternate embodiment, theHAA may alert the HTS that the device is approaching a hotspot. The HTSmay perform any alert function configured by the user or store the alertfor later use. The HTS may send an alert to the HAA or to anotherlocation. For example, the HTS may send an email, push notification,text message, or another communication to the user.

The HAA can be embodied as a stand-alone application program or as acompanion program to a web browser, for example, as a companion programto a Hypertext Markup Language revision 5 (“HTML5”) compliant webbrowser or other type of web browser having messaging and storagecapabilities. While certain embodiments are described in which parts ofthe HAA are implemented in software, it will be appreciated that one ormore acts or functions of the HAA may be performed by hardware,software, or a combination thereof, as may be embodied in one or morecomputing systems.

Users may, in appropriate circumstances, limit or otherwise affect theoperation of the features disclosed in the specification. For example,users may be given an initial opportunity to opt-in or opt-out of thecollection or use of certain data or the activation of certain features.In addition, a user may change the manner in which the features areemployed, including for situations in which a user may have concernsregarding his privacy. Instructions may be provided to notify the usersregarding policies about the use of information, including personallyidentifiable information and receipt information, and manners in whichthe users may affect such use of information.

System Architecture

Turning now to the drawings, in which like numerals represent like (butnot necessarily identical) elements throughout the figures, exemplaryembodiments of the present invention are described in detail. FIG. 1 isa block diagram depicting an operating environment 100 for a hotspotalert application (“HAA”), in accordance with certain exemplaryembodiments.

Referring to FIG. 1, the exemplary operating environment 100 includes auser network device 110 associated with a user 101, a hotspot marketingsystem 150, and a hotspot tracking system (“HTS”) 160. The user device110 may be a mobile device, (for example, notebook computer, tabletcomputer, netbook computer, personal digital assistant (PDA), video gamedevice, GPS locator device, cellular telephone, smartphone, or othermobile device), or other appropriate technology that may include or maybe coupled to a web browser application module 112 or othercommunication module 117. The user device 110 may employ a host CPU 116to process the operations of the user device 110.

In certain exemplary embodiments, the web browser application 112 is anHTML5 compliant web browser. HTML5 compliant web browsers include across-document messaging application programming interface (API) and alocal storage API that previous HTML versions did not have. Thecross-document messaging API of HTML5 compliant web browsers enablesdocuments, such as web pages, to communicate with each other. Forexample, a first document can send a message to a second documentrequesting information. In response, the second document can send amessage including the requested information to the first document. Thelocal storage API of HTML5 compliant web browsers enables the webbrowser to store information on a client device upon which the webbrowser is installed or is executing, such as the user device 110.Websites also can employ the local storage API to store information on aclient device. Other web browsers having cross-document messaging and/orlocal storage capabilities also may be used in certain exemplaryembodiments.

The user 101 can use the web browser application 112 to view, download,upload, or otherwise access documents or web pages via a distributednetwork 105. The network 105 includes a wired or wirelesstelecommunication system or device by which network devices (includingdevices 110, 150, and 160) can exchange data. For example, the network105 can include a local area network (“LAN”), a wide area network(“WAN”), an intranet, an Internet, storage area network (SAN), personalarea network (PAN), a metropolitan area network (MAN), a wireless localarea network (WLAN), a virtual private network (VPN), a cellular orother mobile communication network, Bluetooth, NFC, or any combinationthereof or any other appropriate architecture or system that facilitatesthe communication of signals, data, and/or messages. Throughout thediscussion of exemplary embodiments, it should be understood that theterms “data” and “information” are used interchangeably herein to referto text, images, audio, video, or any other form of information that canexist in a computer based environment.

The web browser application 112 can interact with web servers (or othercomputing devices) connected to the network 105, web server 151 of thehotspot marketing system 150, and the web server 161 of the HTS 160.

The user device 110 may employ a communication module 117 to communicatewith the web server 161 of the HTS 160 or other servers. Thecommunication module 117 may allow devices to communicate viatechnologies other than the network 105. Examples might include acellular network, radio network, or other communication network.

The user device 110 may include a digital wallet application module 111.The digital wallet 111 may encompass any application, hardware,software, or process the user device 110 may employ to assist the deviceto complete a purchase transaction. The digital wallet 111 can interactwith the web browser application 112 or can be embodied as a companionapplication of the web browser application 112. As a companionapplication, the digital wallet 111 executes within the web browserapplication 112. That is, the digital wallet 111 may be an applicationprogram embedded in the web browser application 112.

The user device 110 may include an HAA 115. The HAA 115 can interactwith the web browser application 112 or be embodied as a companionapplication of the web browser application 112 and execute within theweb browser application 112. In an exemplary embodiment, the HAA 115 mayfurther be embodied as a companion application of the digital wallet 111and execute within the digital wallet 111. The HAA 115 may employ asoftware interface that may open in the digital wallet application 111or may open in the web browser application 112. The interface can allowthe user 101 to configure the HAA 115 and the user account on the HTA160.

The HAA 115 can be used to send device location data to the HTS 160 andreceive a hotspot zone from the HTS 160. The HTS 160 that develops thehotspot zone can include a set of computer-readable programinstructions, for example, using JavaScript, that enable the HTS 160 tointeract with the HAA 115.

The user device 110 includes a data storage unit 113 accessible by theHAA 115 and the web browser application 112. The exemplary data storageunit 113 can include one or more tangible computer-readable media. Thedata storage unit 113 can be stored on the user device 110 or can belogically coupled to the user device 110. For example, the data storageunit 113 can include on-board flash memory and/or one or more removablememory cards or removable flash memory.

The user device 110 may include a location-based application 114 thatthe HAA 115 or the HTS 160 may utilize to access location data for theuser device 110. Examples of applications that may utilize the locationdata, and thus may make it available to the HTS 160 or HAA 115, mayinclude, but would not be limited to, Global Positioning System (“GPS”)location technology or other location identifying technology of the userdevice, business finder applications such as AROUNDME, location basedsocial networks such as FOURSQUARE, location based gaming such asGOWALLA, or friend locater applications such as GOOGLE LATITUDE.Additionally or alternately, the user device 110 may be capable ofproviding location data directly from the host CPU 116. The host CPU 116may provide the location data to the HAA 115 or may be configured totransmit the location data directly to the HTS 160.

The HTS 160 utilizes a HTS server 161 operating a hotspot trackingapplication 164. The HTS server 161 operating the hotspot trackingapplication 164 may represent the computer implemented system that theHTS 160 employs to configure user accounts, create and maintain userprofiles, collect the location data, communicate with the hotspotmarketing system 150, develop proximate hotspot maps and zones, andsubmit the data to the user 101. The HTS website 163 may represent anyweb-based interface that allows users to interact with the HTS 160 toconfigure the user accounts and change account settings. The HTS server161 can communicate with one or more hotspot marketing systems 150, anda user device 110 via any available technologies. These technologies mayinclude, but would not be limited to, an Internet connection via thenetwork 105, email, text, instant messaging, or other suitablecommunication technologies. The HTS 160 may include a data storage unit162 accessible by the server 161 of the HTS 160. The data storage unit162 can include one or more tangible computer-readable storage devices.

The hotspot marketing system 150 utilizes a hotspot marketing systemserver 151. The hotspot marketing system server 151 may represent thecomputer-implemented system that the hotspot marketing system 150employs to provide hotspot identities, locations, marketing information,and descriptions to the HTS 160. The hotspot marketing system 150 mayrepresent any number of systems that may be polled by the HTS 160 togather hotspot information. For example, the hotspot marketing system150 may be the marketing system of a product manufacturer or a serviceprovider. The hotspot marketing system 150 may be a social networksystem of a user that can provide preferences and historical data of auser's activities, such FACEBOOK, GOOGLE+, or LINKEDIN. The hotspotmarketing system 150 may be a coupon aggregator or provider. The hotspotmarketing system 150 may be a mapping program such as GOOGLE MAPS orMAPQUEST. The hotspot marketing system 150 may be any other service orsystem that may provide information that the HTS 160 can use to define ahotspot zone and prioritize the hotspots.

The hotspot marketing system 150 can communicate with an HTS 160 anduser devices 110 via any available technologies. These technologies mayinclude, but would not be limited to, an Internet connection via thenetwork 105, email, text, instant messaging, or other suitablecommunication technologies. The hotspot marketing system 150 may includea data storage unit 152 accessible by the server 151 of the hotspotmarketing system 150. The data storage unit 152 can include one or moretangible computer-readable storage devices.

It will be appreciated that the network connections shown are exemplaryand other means of establishing a communications link between thecomputers and devices can be used. Moreover, those having ordinary skillin the art having the benefit of the present disclosure will appreciatethat the user device 110, hotspot marketing system 150, and HTS 160illustrated in FIG. 1 can have any of several other suitable computersystem configurations. For example, a user device 110 embodied as amobile phone or handheld computer may not include all the componentsdescribed above.

System Process

The components of the exemplary operating environment 100 are describedhereinafter with reference to the exemplary methods illustrated in FIG.2-3. The exemplary embodiments can include one or more computer programsthat embody the functions described herein and illustrated in theappended flow charts. However, it should be apparent that there could bemany different ways of implementing aspects of the exemplary embodimentsin computer programming, and these aspects should not be construed aslimited to one set of computer instructions. Further, a skilledprogrammer would be able to write such computer programs to implementexemplary embodiments based on the flow charts and associateddescription in the application text. Therefore, disclosure of aparticular set of program code instructions is not considered necessaryfor an adequate understanding of how to make and use the exemplaryembodiments. Further, those skilled in the art will appreciate that oneor more acts described may be performed by hardware, software, or acombination thereof, as may be embodied in one or more computingsystems.

FIG. 2 is a flow chart depicting a method 200 for supplying a userdevice with proximate hotspots, in accordance with certain exemplaryembodiments.

With reference to FIGS. 1 and 2, in block 205, the hotspot trackingsystem (“HTS”) 160 installs computer-readable program instructions onthe HTS server 161 for interacting with the hotspot alert application(“HAA”) 115 on the user device 110. Additionally, the HTS 160 installscomputer-readable program instructions on the HTS server 161 forinteracting with the hotspot marketing system 150. In an exemplaryembodiment, these computer-readable program instructions may beimplemented as an embedded script, such as JavaScript, in the HTS server161. The program instructions may be embodied as a hotspot trackingapplication 164.

In block 210, the user 101 installs an HAA 115 on the user device 110.In certain exemplary embodiments, the user 101 may navigate to a websiteof a provider of the HAA 115 and download and install the HAA 115. Thewebsite that provides the HAA 115 may be the HTS website 153. The HAA115 may be embedded in a digital wallet 112 on a user device 110. Theuser 101 may utilize a user interface of the HAA 115 for configuration.The user 101 may configure privacy settings provided by the HAA 115.

Additionally, the user 101 may communicate with the computer-readableprogram instructions on the HTS 160 to establish user identification andaccount configuration. The communication with the HTS 160 may be madevia any available technology including, but not limited to, an Internetconnection via the network 105, text, email, or a cellular connection.On the HTS 160 and the HAA 115, the user 101 may configure thecategories of hotspots that are monitored. The user 101 may additionallyconfigure privacy settings provided by the HTS 160.

The HAA 115 may additionally or alternatively communicate with the HTS160 to establish the format in which the hotspot data should betransmitted. For example, an HAA 115 that does not employ a map displayfeature, may only require a listing of hotspots. An HAA 115 may requestany other format or data that is available from the HTS 160.

The user 101 may additionally configure the alerting mechanism of theHAA 115. The HAA 115 may provide an audible alert, a vibration, avisible alert, such as showing the hotspot details on the display of theuser device, or any other configurable alerting procedure. The alert mayadditionally or alternatively be incorporated by any other applicationthat could benefit from the hotspot alert.

In block 215, the user 101 initiates the HAA 115 by actuating a physicalor virtual button, making a motion such as a “tap” or swipe with theuser device 110, speaking a voice command, or performing any otherinitiation process. The HAA 115 transmits to the HTS 160 the location ofthe user device 110. The HAA 115 may be configured to access thelocation data directly from the host CPU 116 of user device 110. Theuser device 110 may have the capability, through computer hardware orsoftware, or a combination thereof, to determine the geographiccoordinates of the location of the user device 110. For example, theuser device 110 may utilize the Global Positioning System (“GPS”) todetermine its location.

Additionally or alternatively, the user device 110 may include alocation-based application 114 that the HAA 115 or the HTS 160 mayutilize to access location data for the user device 110. Examples ofapplications that may utilize the location data, and thus may make itavailable to the HTS 160, may include, but would not be limited to,business finder applications such as AROUNDME, location based socialnetworks such as FOURSQUARE, location based gaming such as GOWALLA, orfriend locater applications such as GOOGLE LATTITUDE.

In block 220, the HTS 160 gathers hotspot location data and transmitsthe location data to the user device 110. The details of this step willbe discussed in further detail with reference to method 220 of FIG. 3.

In block 225, the user device 110 incorporates the hotspot data into theuser interface of the HAA 115. The HAA 115 may display the informationon a map or other grid via the user interface of the HAA. Additionallyor alternatively, the HAA 115 may display the information to the user inany other format that can convey the information, such as a simplelisting of each hotspot and the distance away from the user that eachhotspot is located. The HAA 115 may further provide a route to a hotspotupon request from the user. The user 101 may elect to operate the HAA115 in the foreground of the host CPU 116 operating system and providesubstantially instant alerts as the user 101 moves through the hotspotzone. The HAA 115 may alternatively operate in the background of theoperating system and store the hotspot alerts for later access by theuser 101.

In block 230, the HAA 115 monitors the location of the user device 110as it moves through the hotspot zone. The HAA 115 compares the locationof the user device 110 to known hotspots identified on the most recenthotspot zone. The HAA 115 continually or intermittently determines ifthe user device is within a configured distance from a hotspot.

In block 235, the HAA 115 determines if a hotspot is being approached.For example, if a user 101 is walking through a shopping district withthe user device 110 and comes within a specified distance of a hotspot,such as one block, the HAA 115 recognizes the approached hotspot. If ahotspot is being approached, the method 200 follows the “YES” branch ofblock 235 to block 237. If no hotspot is being approached, the method200 follows the “NO” branch of block 235 to 230.

Following the “NO” branch of block 235 to block 230, the HAA 115continues to monitor the location of the user device 110 as previouslydescribed.

Following the “YES” branch of block 235 to block 237, a hotspot alert istriggered when the user device 110 moves within a configured range of ahotspot. In exemplary embodiments, the HAA 115 may use the alertinternally or may provide an audible alert, a vibration, a visiblealert, such as showing the hotspot details on the display of the userdevice, an e-mail, or any other configurable alerting procedure.

In an alternate embodiment, the HAA 115 may alert the HTS 160 that thedevice is approaching a hotspot. The HTS 160 may perform any alertfunction configured by the user or store the alert for later use. TheHTS 160 may send an alert to the HAA 115 or to another location. Forexample, the HTS 160 may send an email, push notification, text message,or another communication to the user.

In an alternative embodiment, the HAA 115 may be configured to alert theuser 101 of only the higher priority hotspots. As discussed in thedetails of method 220 of FIG. 3, the hotspot data may be prioritized bythe HTS 160. The HAA 115 may use the priority of the hotspot data todetermine which hotspots will trigger an alert to the user 101. Forexample, the user 101 may desire to limit the alerts to the 10 highestpriority hotspots in a given zone. Alternatively, the user 101 mayconfigure the HAA 115 to alert the user 101 to every hotspot in thezone.

In block 240, if the user device 110 approaches a configured distancefrom the boundary of the hotspot zone, the method 200 follows the “YES”branch of block 240 to block 220. If the user device 110 has notapproached a configured boundary of the hotspot zone, the method 200follows the “NO” branch of block 240 to block 245. In an alternateembodiment of the application, the HAA 115 may require the user device110 to completely exit the boundaries of the hotspot zone to follow the“YES” branch of block 240.

Following the “YES” branch of block 240 to block 220, the methodrequests and receive a refreshed hotspot zone. As the user device 110has left the boundaries of the previous hotspot zone, the HAA 115 willhave no hotspot data to display to the user 101 or monitor for alerts. Anew hotspot zone with a new list of hotspots is transmitted to the userdevice 110.

Following the “NO” branch of block 240 to block 245, the user device 110determines if the user device 110 has received a new hotspot zone in aconfigured amount of time. For instance, if a user device 110 hasremained in one location for a configured time or has not encounteredany hotspots for a configured time, the method 200 will determine thatthe user device 110 is idle and follow the “YES” branch of block 245 toblock 220. A new hotspot zone with a new list of hotspots is transmittedto the user device 110. The idle time required to trigger the “YES”branch of block 245 is configurable by the user 101 or the HAA 115. Forexample, the idle time required might be one hour, one day, one week, orany other time that is reasonable based upon the activities of the user101.

If the device has not remained idle and has received a new hotspot zonewithin the configured time, the method 200 follows the “NO” branch ofblock 245 to block 230. The device will continue monitoring the locationof the user device 110.

The method 200 continues until the user 101 deactivates the HAA 115 orthe user device is shut down.

FIG. 3 is a flow chart depicting a method 220 for generating andtransmitting hotspots to a user device, in accordance with certainexemplary embodiments.

With reference to FIGS. 1 and 2, in block 305 of method 220, the HTS 160establishes and maintains current marketing and location data ofhotspots that relate to a user 101. The hotspot information may beanything would be of interest to the user. The category of hotspotinformation accessed might be user configured or may be selected by theHTS server 161 based on the prior activities, interests, or suggestionsof the user 101. Examples of hotspots that may be identified by theserver 161 for transmitting to the user device 110 might include, butwould not be limited to, restaurants, stores or other businessesfrequented by the user 101, businesses currently offering a sale orpromotion, businesses currently offering an electronic coupon, touristattractions, museums, friends identified by their devices, or any otheridentifiable entity in which the user 101 may be interested.

The HTS 160 may access hotspot data from any system that may be polledby the HTS 160 to gather hotspot information. For example, the hotspotdata may be gathered from a hotspot marketing system 150. A hotspotmarketing system 150 may be the marketing system of a productmanufacturer or a service provider. The hotspot marketing system 150 maybe a social network system of a user that can provide preferences andhistorical data of a user's activities, a coupon aggregator or provider,a mapping system, or any other service or system that may provideinformation that the HTS 160 can use to define a hotspot zone andprioritize the hotspots.

In block 310, the HTS 160 receives the location of the user device 110.The HTS 160 stores the location of the user device 110 in the useraccount. In block 315, the HTS 160 identifies the hotspots in thevicinity. The HTS 160 may access the database maintained for the accountof the user 101. The distance of each possible hotspot from the locationof the user 101 is calculated and stored.

In block 320, the HTS 160 uses the density or quality of the hotspotinformation to establish the size of the hotspot zone to transmit to theuser device 110. The HTS 160 may limit the size of the hotspot zone toprevent any adverse effects caused by transmitting a quantity of datathat is too large for the user device 110 and the system to operateefficiently. For example, if the amount of hotspot data transmitted istoo large, the data may require enough capacity on the data storage unit113 of the user device 110 to affect the normal operation of the userdevice 110. Alternatively, if the size of the hotspot zone is too smallthen the HTS 160 may be forced to transmit a new zone of hotspots to theuser device 110 too frequently to be practical. For example, if thehotspot zone data were transmitted too frequently, it might consume thebattery life of the user device 110.

The size of the hotspot zone around the current location of the userdevice 110 can be determined based on the density or quality of thehotspot information. In an exemplary embodiment, the size of the hotspotzone may be established to encompass a configured number of hotspots inthe proximity of the user device 110. For example, the size of thehotspot zone can be configured to encompass the specified number ofhotspots that are closest to the user device 110 or that provide thehighest priority hotspots around the user device 110. Thus, in an areaof high concentration of available hotspots, the hotspot zone may berelatively small to capture the specified number of hotspots.Alternatively, in an area of lower concentration of available hotspots,the hotspot zone may be relatively large to capture the specified numberof hotspots. Additionally, the size of the hotspot zone can take anysuitable shape to encompass the specified hotspots.

The HTS 160 may additionally prioritize the hotspot data. Based on inputof the user 101 or an analysis of historical data, such as purchasinghistory or website usage of the user 101, the HTS 160 may provide aranked list of the hotspots to the user device 110. For example, the HTS160 may be able to determine that a user 101 prefers a certain store orrestaurant and rank it higher than an alternative restaurant even if thealternative restaurant is closer to the user 101 location. Thus, if theuser 101 limits the number of hotspot alerts in a given zone, a lowerranked hotspot may be ignored in favor of a nearby, higher rankedhotspot.

Another example of a prioritizing factor might be the value or quantityof coupons or offers being marketed by a hotspot. For example, the HAA115 may not alert a user 101 to a nearby hotspot if a better promotionis being offered by a neighboring business.

If displaying the information on a map view, the HAA 115 may expand orcollapse the data displayed to the user depending on the density of thedata. For example, if a large number of hotspots are located in alocalized area, the HAA 115 may group hotspots together and show thegrouping in a single icon or notation. An example of this may be ashopping complex that contains a quantity of hotspots too great todisplay on a user device. The display may show a shopping complexnotation and list the number of hotspots contained at that location orany other manner of representing the group of hotspots. As the user 101approaches the dense hotspot, the grouped hotspot may expand to show theindividual hotspots in that area. For example, if the user 101 isbetween two shopping malls or between two cities, a single hotspot maybe provided for each mall or each city, respectively. Then, as the userapproaches one of the malls or one of the cities, the collapsed hotspotfor that mall or city expands to show all hotspots (or a specifiednumber of hotspots) at that location.

In certain exemplary embodiments, the HTS 160 applies the extracted datato a machine learning algorithm or another statistical model todetermine the most effective ranking system. For example, a machinelearning algorithm can be performed on the hotspots generated for one ormore users to learn the ranking system that produces results having thehighest usage rates. The machine learning algorithm can be updatedperiodically.

In block 325, the HTS 160 transmits the hotspot zone dimensions, thehotspot identities and locations, and any associated hotspot marketinginformation to the HAA 115. The HTS 160 may additionally transmit thepriority ranking of each of the hotspots for use by the HAA 115.

From block 325, the method 220 proceeds to block 225 with reference toFIG. 2. General

One or more aspects of the invention may comprise a computer programthat embodies the functions described and illustrated herein, whereinthe computer program is implemented in a computer system that comprisesinstructions stored in a machine-readable medium and a processor thatexecutes the instructions. However, it should be apparent that therecould be many different ways of implementing the invention in computerprogramming, and the invention should not be construed as limited to anyone set of computer program instructions. Further, a skilled programmerwould be able to write such a computer program to implement anembodiment of the disclosed invention based on the appended flow chartsand associated description in the application text. Therefore,disclosure of a particular set of program code instructions is notconsidered necessary for an adequate understanding of how to make anduse the invention. Further, those skilled in the art will appreciatethat one or more aspects of the invention described herein may beperformed by hardware, software, or a combination thereof, as may beembodied in one or more computing systems. Moreover, any reference to anact being performed by a computer should not be construed as beingperformed by a single computer as the act may be performed by more thanone computer. The inventive functionality of the invention will beexplained in more detail in the following description, read inconjunction with the figures illustrating the program flow.

The exemplary embodiments described herein can be used with computerhardware and software that perform the methods and processing functionsdescribed previously. The systems, methods, and procedures describedherein can be embodied in a programmable computer, computer-executablesoftware, or digital circuitry. The software can be stored on computer-readable media. For example, computer-readable media can include afloppy disk, RAM, ROM, hard disk, removable media, flash memory, memorystick, optical media, magneto-optical media, CD-ROM, etc. Digitalcircuitry can include integrated circuits, gate arrays, building blocklogic, field programmable gate arrays (FPGA), etc.

The exemplary methods and acts described in the embodiments presentedpreviously are illustrative, and, in alternative embodiments, certainacts can be performed in a different order, in parallel with oneanother, omitted entirely, and/or combined between different exemplaryembodiments, and/or certain additional acts can be performed, withoutdeparting from the scope and spirit of the invention. Accordingly, suchalternative embodiments are included in the inventions described herein.

Although specific embodiments have been described above in detail, thedescription is merely for purposes of illustration. It should beappreciated, therefore, that many aspects described above are notintended as required or essential elements unless explicitly statedotherwise. Modifications of, and equivalent acts corresponding to, thedisclosed aspects of the exemplary embodiments, in addition to thosedescribed above, can be made by a person of ordinary skill in the art,having the benefit of the present disclosure, without departing from thespirit and scope of the invention defined in the following claims, thescope of which is to be accorded the broadest interpretation so as toencompass such modifications and equivalent structures.

What is claimed is:
 1. A method comprising: communicating, by a clientnetwork device to a remote network device, a request for place ofinterest data and first location data for the client network device;receiving, by the client network device, the place of interest data fromthe remote network device, the place of interest data comprising aplurality of places of interest in a zone defined by the remote networkdevice, the zone based on the first location data of the client networkdevice and having a size based on a density of the plurality of placesof interest; selecting one of the plurality of places of interest basedon a location history of the client network device; and displaying, viaa display of the client network device, the one of the plurality ofplaces of interest responsive to second location data of the clientnetwork device being within a range of the one of the plurality ofplaces of interest.
 2. The method of claim 1, wherein the size of thezone is based on a quantity of data to be received from the remotenetwork device.
 3. The method of claim 1, wherein the size of the zoneis based on a capacity of a data storage unit of the client networkdevice.
 4. The method of claim 1, wherein receiving the place ofinterest data from the remote network device comprises receiving sets ofplace of interest data, wherein a frequency of receiving sets of placeof interest data is based on a battery life of the client networkdevice.
 5. The method of claim 1, wherein the plurality of places ofinterest are ranked based on a purchase history.
 6. The method of claim1, wherein the plurality of places of interest are ranked based onhistorical data of website usage.
 7. The method of claim 1, wherein thefirst location data is acquired from an application executing on theclient network device.
 8. The method of claim 1, wherein displaying theone of the plurality of places of interest comprises displaying the oneof the plurality of places of interest in a list.
 9. The method of claim1 further comprising: triggering, via the client network device, avisual alert responsive the second location data of the client networkdevice being within the range of the one of the plurality of places ofinterest.
 10. A non-transitory computer readable storage device storinginstructions that, when executed by one or more processors, cause theone or more processors to perform operations comprising: acquiring, froma GPS unit of a client network device, first location data indicative ofa location of the client network device; transmitting, by the clientnetwork device to a remote network device, a request for place ofinterest data and the first location data for the client network device;receiving, by the client network device, the place of interest data fromthe remote network device, the place of interest data comprising aplurality of places of interest in a zone defined by the remote networkdevice, the zone based on the first location data of the client networkdevice and having a size based on a density of the plurality of placesof interest; selecting one of the plurality of places of interest basedon a location history of the client network device; and displaying, viaa display of the client network device, the one of the plurality ofplaces of interest responsive to second location data of the clientnetwork device being within a range of the one of the plurality ofplaces of interest.
 11. The non-transitory computer readable storagedevice of claim 10, wherein displaying the one of the plurality ofplaces of interest comprises displaying the one of the plurality ofplaces of interest on a map.
 12. The non-transitory computer readablestorage device of claim 11 storing further instructions that, whenexecuted by one or more processors, cause the one or more processors toperform operations further comprising: displaying, via the display ofthe client network device, a route to the one of the plurality of placesof interest on the map responsive to a user request.
 13. Thenon-transitory computer readable storage device of claim 10, whereindisplaying the one of the plurality of places of interest is furtherresponsive to a tap.
 14. The non-transitory computer readable storagedevice of claim 10, wherein displaying the one of the plurality ofplaces of interest is further responsive to a tap.
 15. A systemcomprising: one or more processors; and one or more storage devicesstoring instructions that, when executed by the one or more processors,cause the one or more processors to perform operations comprising:receiving, from a client network device, first location data indicativeof a location of the client network device acquired from a GPS unit ofthe client network device; accessing place of interest data from adatabase for an account associated with the client network device;determining a size of a zone based on the place of interest data and thefirst location data of the client network device; selecting plurality ofplaces of interest from the place of interest data based on the firstlocation data of the client network device and the size of the zone; andtransmitting data for the plurality of places of interest and the zoneto the client network device.
 16. The system of claim 15, whereinselecting the plurality of places of interest from the place of interestdata is further based on a quantity of data to be transmitted to theclient network device.
 17. The system of claim 15, wherein selecting theplurality of places of interest from the place of interest data isfurther based on a capacity of a data storage unit of the client networkdevice.
 18. The system of claim 15, wherein transmitting data for theplurality of places of interest is based on a frequency of transmittingsets of plurality of places of interest based on a battery life of theclient network device.
 19. The system of claim 15, wherein selecting theplurality of places of interest is based on a purchase history or ahistory of website usage.
 20. The system of claim 15, wherein the one ormore storage devices store instructions that, when executed by the oneor more processors, cause the one or more processors to performoperations further comprising: storing the first location data in thedatabase for the account associated with the client network device.